1. Field of the Invention
The present invention relates to a communication device, and a communication method and a program thereof and, more particularly, a communication device which realizes communication with data distributed to a plurality of connections, and a communication method and a program thereof.
2. Description of the Related Art
There conventionally exists a communication method of distributing data of one communication flow which is used in communication between a transmission terminal and a reception terminal to a plurality of flows and lastly restoring the same. There exists, for example, a method of, with a gateway disposed in each of a LAN (Local Area Network) in which a transmission terminal is provided and a LAN in which a reception terminal is provided, allotting, at the gateway in the vicinity of the transmission terminal, data of a TCP (Transmission Control Protocol) connection which is sent from the transmission terminal to each communication path on a packet basis and correcting an inverted order of a packet at the gateway in the vicinity of the reception terminal according to a TCP sequence number (see Japanese Patent Laying-Open No. 2000-261478).
This method, however, has a problem that a communication path can not fully exhibit its performance because the TCP of the terminal realizes operation premised on being used in one communication path.
Among methods of efficiently using a plurality of communication lines to improve a rate of line use are the following methods.
First method is adding a function to a TCP of a terminal to change communication conventionally using one TCP connection to use a plurality of TCP connections (Multipath TCP, <Multipath Proxy Server>, see Japanese Patent Laying-Open No. 2003-110604).
This method includes a method of dividing data communication which is executed by one communication flow in communication between a transmission terminal and a reception terminal into a plurality of communication flows and sending the data in parallel. When transmitting data from the transmission terminal to the reception terminal, a communication protocol of the transmission terminal divides communication data of one communication flow and allots the divided data to a plurality of communication flows, the reception terminal adds, into packet data of a TCP/IP packet, a new header as restoration information for restoring the divided data to original data and transmits the data by each communication flow, and a communication protocol of the reception terminal refers to the restoration information of the data received from the plurality of communication flows and restores one communication flow to restore original data.
First problem is that according to the first method, addition of a new header into a packet to divide and restore data leads to an increase in a header to reduce communication efficiency.
Second problem is that since according to the first method, addition of a new header into a packet to divide and restore data leads to an increase in a header to change segmentation for dividing data by packets, an application not taking change of segmentation into account fails to execute normal communication.
In particular, when data received by one connection is transmitted to a proxy server with data distributed to a plurality of connections by using the first method, re-segmentation is required without fail.
Third problem is that when there exists, in the course of a network path used by a communication device according to the first method, a device outside a control management range which fails to take the present method into consideration to change segmentation, normal communication is impossible by the first method.
Fourth problem is that since according to the first method, at the time of transmitting divided data in parallel by a plurality of connections, data is transferred to a TCP connection processing process on a packet basis, the number of times of issuance of a write instruction is increased to increase processing load.